Engineers use compression (also called source coding or source encoding) to reduce the bit rate of digital video. Compression decreases the cost of storing and transmitting video information by converting the information into a lower bit rate form. Decompression (also called decoding) reconstructs a version of the original information from the compressed form. A “codec” is an encoder/decoder system.
Over the last 25 years, various video codec standards have been adopted, including the ITU-T H.261, H.262 (MPEG-2 or ISO/IEC 13818-2), H.263, H.264 (MPEG-4 AVC or ISO/IEC 14496-10) standards, the MPEG-1 (ISO/IEC 11172-2) and MPEG-4 Visual (ISO/IEC 14496-2) standards, and the SMPTE 421M (VC-1) standard. More recently, the H.265/HEVC standard (ITU-T H.265 or ISO/IEC 23008-2) has been approved. A video codec standard typically defines options for the syntax of an encoded video bitstream, detailing parameters in the bitstream when particular features are used in encoding and decoding. In many cases, a video codec standard also provides details about the decoding operations a video decoder should perform to achieve conforming results in decoding. Aside from codec standards, various proprietary codec formats define other options for the syntax of an encoded video bitstream and corresponding decoding operations.
In a typical video sequence, most regions of a given picture are the same, or change only slightly, compared to pictures before the given picture and after the given picture. Most video codec standards and formats use inter-picture prediction to exploit such picture-to-picture redundancy in a video sequence. For example, if a block of sample values in the given picture is predicted using inter-picture prediction, a video encoder estimates the motion of the block relative to one or more other, previously encoded/decoded pictures, which are available for reference when encoding/decoding the given picture. The other, previously encoded/decoded pictures are called reference pictures. When the video encoder finds a matching block within a reference picture for the block of the given picture, the video encoder represents the matching block, e.g., using an identifier of the reference picture and the location of the matching block (relative to the location of the block of the given picture). The video encoder can determine differences between the block of the given picture and the matching block, then encode those differences.
According to some video codec standards and formats, a video encoder and video decoder apply simple rules to determine which reference pictures to retain in a buffer for inter-picture prediction, and to determine which reference pictures to remove from the buffer. According to other video codec standards and formats, a video encoder has more control over which reference pictures to retain or remove from the buffer, and the video encoder signals information to a video decoder so that the video decoder can update reference pictures accordingly. Prior video codec standards and formats are not sufficiently flexible in terms of options for reference picture management, which can hurt coding efficiency and result in inefficient use of resources during video encoding/decoding.